package cn.yd.rb.po;

import java.util.ArrayList;
import java.util.List;

public class NovelExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public NovelExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andNovelnameIsNull() {
            addCriterion("novelname is null");
            return (Criteria) this;
        }

        public Criteria andNovelnameIsNotNull() {
            addCriterion("novelname is not null");
            return (Criteria) this;
        }

        public Criteria andNovelnameEqualTo(String value) {
            addCriterion("novelname =", value, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameNotEqualTo(String value) {
            addCriterion("novelname <>", value, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameGreaterThan(String value) {
            addCriterion("novelname >", value, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameGreaterThanOrEqualTo(String value) {
            addCriterion("novelname >=", value, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameLessThan(String value) {
            addCriterion("novelname <", value, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameLessThanOrEqualTo(String value) {
            addCriterion("novelname <=", value, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameLike(String value) {
            addCriterion("novelname like", value, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameNotLike(String value) {
            addCriterion("novelname not like", value, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameIn(List<String> values) {
            addCriterion("novelname in", values, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameNotIn(List<String> values) {
            addCriterion("novelname not in", values, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameBetween(String value1, String value2) {
            addCriterion("novelname between", value1, value2, "novelname");
            return (Criteria) this;
        }

        public Criteria andNovelnameNotBetween(String value1, String value2) {
            addCriterion("novelname not between", value1, value2, "novelname");
            return (Criteria) this;
        }

        public Criteria andArtistIsNull() {
            addCriterion("artist is null");
            return (Criteria) this;
        }

        public Criteria andArtistIsNotNull() {
            addCriterion("artist is not null");
            return (Criteria) this;
        }

        public Criteria andArtistEqualTo(String value) {
            addCriterion("artist =", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotEqualTo(String value) {
            addCriterion("artist <>", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistGreaterThan(String value) {
            addCriterion("artist >", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistGreaterThanOrEqualTo(String value) {
            addCriterion("artist >=", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistLessThan(String value) {
            addCriterion("artist <", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistLessThanOrEqualTo(String value) {
            addCriterion("artist <=", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistLike(String value) {
            addCriterion("artist like", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotLike(String value) {
            addCriterion("artist not like", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistIn(List<String> values) {
            addCriterion("artist in", values, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotIn(List<String> values) {
            addCriterion("artist not in", values, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistBetween(String value1, String value2) {
            addCriterion("artist between", value1, value2, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotBetween(String value1, String value2) {
            addCriterion("artist not between", value1, value2, "artist");
            return (Criteria) this;
        }

        public Criteria andTypeIdIsNull() {
            addCriterion("type_id is null");
            return (Criteria) this;
        }

        public Criteria andTypeIdIsNotNull() {
            addCriterion("type_id is not null");
            return (Criteria) this;
        }

        public Criteria andTypeIdEqualTo(Integer value) {
            addCriterion("type_id =", value, "typeId");
            return (Criteria) this;
        }

        public Criteria andTypeIdNotEqualTo(Integer value) {
            addCriterion("type_id <>", value, "typeId");
            return (Criteria) this;
        }

        public Criteria andTypeIdGreaterThan(Integer value) {
            addCriterion("type_id >", value, "typeId");
            return (Criteria) this;
        }

        public Criteria andTypeIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("type_id >=", value, "typeId");
            return (Criteria) this;
        }

        public Criteria andTypeIdLessThan(Integer value) {
            addCriterion("type_id <", value, "typeId");
            return (Criteria) this;
        }

        public Criteria andTypeIdLessThanOrEqualTo(Integer value) {
            addCriterion("type_id <=", value, "typeId");
            return (Criteria) this;
        }

        public Criteria andTypeIdIn(List<Integer> values) {
            addCriterion("type_id in", values, "typeId");
            return (Criteria) this;
        }

        public Criteria andTypeIdNotIn(List<Integer> values) {
            addCriterion("type_id not in", values, "typeId");
            return (Criteria) this;
        }

        public Criteria andTypeIdBetween(Integer value1, Integer value2) {
            addCriterion("type_id between", value1, value2, "typeId");
            return (Criteria) this;
        }

        public Criteria andTypeIdNotBetween(Integer value1, Integer value2) {
            addCriterion("type_id not between", value1, value2, "typeId");
            return (Criteria) this;
        }

        public Criteria andDetailIsNull() {
            addCriterion("detail is null");
            return (Criteria) this;
        }

        public Criteria andDetailIsNotNull() {
            addCriterion("detail is not null");
            return (Criteria) this;
        }

        public Criteria andDetailEqualTo(String value) {
            addCriterion("detail =", value, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailNotEqualTo(String value) {
            addCriterion("detail <>", value, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailGreaterThan(String value) {
            addCriterion("detail >", value, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailGreaterThanOrEqualTo(String value) {
            addCriterion("detail >=", value, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailLessThan(String value) {
            addCriterion("detail <", value, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailLessThanOrEqualTo(String value) {
            addCriterion("detail <=", value, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailLike(String value) {
            addCriterion("detail like", value, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailNotLike(String value) {
            addCriterion("detail not like", value, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailIn(List<String> values) {
            addCriterion("detail in", values, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailNotIn(List<String> values) {
            addCriterion("detail not in", values, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailBetween(String value1, String value2) {
            addCriterion("detail between", value1, value2, "detail");
            return (Criteria) this;
        }

        public Criteria andDetailNotBetween(String value1, String value2) {
            addCriterion("detail not between", value1, value2, "detail");
            return (Criteria) this;
        }

        public Criteria andPicIsNull() {
            addCriterion("pic is null");
            return (Criteria) this;
        }

        public Criteria andPicIsNotNull() {
            addCriterion("pic is not null");
            return (Criteria) this;
        }

        public Criteria andPicEqualTo(String value) {
            addCriterion("pic =", value, "pic");
            return (Criteria) this;
        }

        public Criteria andPicNotEqualTo(String value) {
            addCriterion("pic <>", value, "pic");
            return (Criteria) this;
        }

        public Criteria andPicGreaterThan(String value) {
            addCriterion("pic >", value, "pic");
            return (Criteria) this;
        }

        public Criteria andPicGreaterThanOrEqualTo(String value) {
            addCriterion("pic >=", value, "pic");
            return (Criteria) this;
        }

        public Criteria andPicLessThan(String value) {
            addCriterion("pic <", value, "pic");
            return (Criteria) this;
        }

        public Criteria andPicLessThanOrEqualTo(String value) {
            addCriterion("pic <=", value, "pic");
            return (Criteria) this;
        }

        public Criteria andPicLike(String value) {
            addCriterion("pic like", value, "pic");
            return (Criteria) this;
        }

        public Criteria andPicNotLike(String value) {
            addCriterion("pic not like", value, "pic");
            return (Criteria) this;
        }

        public Criteria andPicIn(List<String> values) {
            addCriterion("pic in", values, "pic");
            return (Criteria) this;
        }

        public Criteria andPicNotIn(List<String> values) {
            addCriterion("pic not in", values, "pic");
            return (Criteria) this;
        }

        public Criteria andPicBetween(String value1, String value2) {
            addCriterion("pic between", value1, value2, "pic");
            return (Criteria) this;
        }

        public Criteria andPicNotBetween(String value1, String value2) {
            addCriterion("pic not between", value1, value2, "pic");
            return (Criteria) this;
        }

        public Criteria andTexturlIsNull() {
            addCriterion("texturl is null");
            return (Criteria) this;
        }

        public Criteria andTexturlIsNotNull() {
            addCriterion("texturl is not null");
            return (Criteria) this;
        }

        public Criteria andTexturlEqualTo(String value) {
            addCriterion("texturl =", value, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlNotEqualTo(String value) {
            addCriterion("texturl <>", value, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlGreaterThan(String value) {
            addCriterion("texturl >", value, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlGreaterThanOrEqualTo(String value) {
            addCriterion("texturl >=", value, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlLessThan(String value) {
            addCriterion("texturl <", value, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlLessThanOrEqualTo(String value) {
            addCriterion("texturl <=", value, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlLike(String value) {
            addCriterion("texturl like", value, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlNotLike(String value) {
            addCriterion("texturl not like", value, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlIn(List<String> values) {
            addCriterion("texturl in", values, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlNotIn(List<String> values) {
            addCriterion("texturl not in", values, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlBetween(String value1, String value2) {
            addCriterion("texturl between", value1, value2, "texturl");
            return (Criteria) this;
        }

        public Criteria andTexturlNotBetween(String value1, String value2) {
            addCriterion("texturl not between", value1, value2, "texturl");
            return (Criteria) this;
        }

        public Criteria andDcountsIsNull() {
            addCriterion("dcounts is null");
            return (Criteria) this;
        }

        public Criteria andDcountsIsNotNull() {
            addCriterion("dcounts is not null");
            return (Criteria) this;
        }

        public Criteria andDcountsEqualTo(Integer value) {
            addCriterion("dcounts =", value, "dcounts");
            return (Criteria) this;
        }

        public Criteria andDcountsNotEqualTo(Integer value) {
            addCriterion("dcounts <>", value, "dcounts");
            return (Criteria) this;
        }

        public Criteria andDcountsGreaterThan(Integer value) {
            addCriterion("dcounts >", value, "dcounts");
            return (Criteria) this;
        }

        public Criteria andDcountsGreaterThanOrEqualTo(Integer value) {
            addCriterion("dcounts >=", value, "dcounts");
            return (Criteria) this;
        }

        public Criteria andDcountsLessThan(Integer value) {
            addCriterion("dcounts <", value, "dcounts");
            return (Criteria) this;
        }

        public Criteria andDcountsLessThanOrEqualTo(Integer value) {
            addCriterion("dcounts <=", value, "dcounts");
            return (Criteria) this;
        }

        public Criteria andDcountsIn(List<Integer> values) {
            addCriterion("dcounts in", values, "dcounts");
            return (Criteria) this;
        }

        public Criteria andDcountsNotIn(List<Integer> values) {
            addCriterion("dcounts not in", values, "dcounts");
            return (Criteria) this;
        }

        public Criteria andDcountsBetween(Integer value1, Integer value2) {
            addCriterion("dcounts between", value1, value2, "dcounts");
            return (Criteria) this;
        }

        public Criteria andDcountsNotBetween(Integer value1, Integer value2) {
            addCriterion("dcounts not between", value1, value2, "dcounts");
            return (Criteria) this;
        }

        public Criteria andIsFreeIsNull() {
            addCriterion("is_free is null");
            return (Criteria) this;
        }

        public Criteria andIsFreeIsNotNull() {
            addCriterion("is_free is not null");
            return (Criteria) this;
        }

        public Criteria andIsFreeEqualTo(Integer value) {
            addCriterion("is_free =", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeNotEqualTo(Integer value) {
            addCriterion("is_free <>", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeGreaterThan(Integer value) {
            addCriterion("is_free >", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_free >=", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeLessThan(Integer value) {
            addCriterion("is_free <", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeLessThanOrEqualTo(Integer value) {
            addCriterion("is_free <=", value, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeIn(List<Integer> values) {
            addCriterion("is_free in", values, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeNotIn(List<Integer> values) {
            addCriterion("is_free not in", values, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeBetween(Integer value1, Integer value2) {
            addCriterion("is_free between", value1, value2, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsFreeNotBetween(Integer value1, Integer value2) {
            addCriterion("is_free not between", value1, value2, "isFree");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNull() {
            addCriterion("is_delete is null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNotNull() {
            addCriterion("is_delete is not null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteEqualTo(Integer value) {
            addCriterion("is_delete =", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotEqualTo(Integer value) {
            addCriterion("is_delete <>", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThan(Integer value) {
            addCriterion("is_delete >", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_delete >=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThan(Integer value) {
            addCriterion("is_delete <", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThanOrEqualTo(Integer value) {
            addCriterion("is_delete <=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIn(List<Integer> values) {
            addCriterion("is_delete in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotIn(List<Integer> values) {
            addCriterion("is_delete not in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteBetween(Integer value1, Integer value2) {
            addCriterion("is_delete between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) {
            addCriterion("is_delete not between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andAvgscoreIsNull() {
            addCriterion("avgscore is null");
            return (Criteria) this;
        }

        public Criteria andAvgscoreIsNotNull() {
            addCriterion("avgscore is not null");
            return (Criteria) this;
        }

        public Criteria andAvgscoreEqualTo(Float value) {
            addCriterion("avgscore =", value, "avgscore");
            return (Criteria) this;
        }

        public Criteria andAvgscoreNotEqualTo(Float value) {
            addCriterion("avgscore <>", value, "avgscore");
            return (Criteria) this;
        }

        public Criteria andAvgscoreGreaterThan(Float value) {
            addCriterion("avgscore >", value, "avgscore");
            return (Criteria) this;
        }

        public Criteria andAvgscoreGreaterThanOrEqualTo(Float value) {
            addCriterion("avgscore >=", value, "avgscore");
            return (Criteria) this;
        }

        public Criteria andAvgscoreLessThan(Float value) {
            addCriterion("avgscore <", value, "avgscore");
            return (Criteria) this;
        }

        public Criteria andAvgscoreLessThanOrEqualTo(Float value) {
            addCriterion("avgscore <=", value, "avgscore");
            return (Criteria) this;
        }

        public Criteria andAvgscoreIn(List<Float> values) {
            addCriterion("avgscore in", values, "avgscore");
            return (Criteria) this;
        }

        public Criteria andAvgscoreNotIn(List<Float> values) {
            addCriterion("avgscore not in", values, "avgscore");
            return (Criteria) this;
        }

        public Criteria andAvgscoreBetween(Float value1, Float value2) {
            addCriterion("avgscore between", value1, value2, "avgscore");
            return (Criteria) this;
        }

        public Criteria andAvgscoreNotBetween(Float value1, Float value2) {
            addCriterion("avgscore not between", value1, value2, "avgscore");
            return (Criteria) this;
        }

        public Criteria andCommentcountsIsNull() {
            addCriterion("commentcounts is null");
            return (Criteria) this;
        }

        public Criteria andCommentcountsIsNotNull() {
            addCriterion("commentcounts is not null");
            return (Criteria) this;
        }

        public Criteria andCommentcountsEqualTo(Integer value) {
            addCriterion("commentcounts =", value, "commentcounts");
            return (Criteria) this;
        }

        public Criteria andCommentcountsNotEqualTo(Integer value) {
            addCriterion("commentcounts <>", value, "commentcounts");
            return (Criteria) this;
        }

        public Criteria andCommentcountsGreaterThan(Integer value) {
            addCriterion("commentcounts >", value, "commentcounts");
            return (Criteria) this;
        }

        public Criteria andCommentcountsGreaterThanOrEqualTo(Integer value) {
            addCriterion("commentcounts >=", value, "commentcounts");
            return (Criteria) this;
        }

        public Criteria andCommentcountsLessThan(Integer value) {
            addCriterion("commentcounts <", value, "commentcounts");
            return (Criteria) this;
        }

        public Criteria andCommentcountsLessThanOrEqualTo(Integer value) {
            addCriterion("commentcounts <=", value, "commentcounts");
            return (Criteria) this;
        }

        public Criteria andCommentcountsIn(List<Integer> values) {
            addCriterion("commentcounts in", values, "commentcounts");
            return (Criteria) this;
        }

        public Criteria andCommentcountsNotIn(List<Integer> values) {
            addCriterion("commentcounts not in", values, "commentcounts");
            return (Criteria) this;
        }

        public Criteria andCommentcountsBetween(Integer value1, Integer value2) {
            addCriterion("commentcounts between", value1, value2, "commentcounts");
            return (Criteria) this;
        }

        public Criteria andCommentcountsNotBetween(Integer value1, Integer value2) {
            addCriterion("commentcounts not between", value1, value2, "commentcounts");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}